using System.Text.Json.Serialization;
using PuppeteerSharp.Helpers.Json;

namespace PuppeteerSharp.Mobile
{
    /// <summary>
    /// Device descriptor name.
    /// </summary>
    [JsonConverter(typeof(JsonStringEnumMemberConverter<DeviceDescriptorName>))]
    public enum DeviceDescriptorName
    {
        /// <summary>
        /// Blackberry PlayBook.
        /// </summary>
        BlackberryPlayBook,

        /// <summary>
        /// Blackberry PlayBook landscape.
        /// </summary>
        BlackberryPlayBookLandscape,

        /// <summary>
        /// BlackBerry Z30.
        /// </summary>
        BlackBerryZ30,

        /// <summary>
        /// BlackBerry Z30 landscape.
        /// </summary>
        BlackBerryZ30Landscape,

        /// <summary>
        /// Galaxy Note 3.
        /// </summary>
        GalaxyNote3,

        /// <summary>
        /// Galaxy Note 3 landscape.
        /// </summary>
        GalaxyNote3Landscape,

        /// <summary>
        /// Galaxy Note II.
        /// </summary>
        GalaxyNoteII,

        /// <summary>
        /// Galaxy Note II landscape.
        /// </summary>
        GalaxyNoteIILandscape,

        /// <summary>
        /// Galaxy S III.
        /// </summary>
        GalaxySIII,

        /// <summary>
        /// Galaxy S III landscape.
        /// </summary>
        GalaxySIIILandscape,

        /// <summary>
        /// Galaxy S5.
        /// </summary>
        GalaxyS5,

        /// <summary>
        /// Galaxy S5 landscape.
        /// </summary>
        GalaxyS5Landscape,

        /// <summary>
        /// Galaxy S8.
        /// </summary>
        GalaxyS8,

        /// <summary>
        /// Galaxy S8 landscape.
        /// </summary>
        GalaxyS8Landscape,

        /// <summary>
        /// Galaxy S9+.
        /// </summary>
        GalaxyS9Plus,

        /// <summary>
        /// Galaxy S9+ landscape.
        /// </summary>
        GalaxyS9PlusLandscape,

        /// <summary>
        /// Galaxy Tab S4.
        /// </summary>
        GalaxyTabS4,

        /// <summary>
        /// Galaxy Tab S4 landscape.
        /// </summary>
        GalaxyTabS4Landscape,

        /// <summary>
        /// iPad.
        /// </summary>
        IPad,

        /// <summary>
        /// iPad landscape.
        /// </summary>
        IPadLandscape,

        /// <summary>
        /// iPad Mini.
        /// </summary>
        IPadMini,

        /// <summary>
        /// iPad Mini landscape.
        /// </summary>
        IPadMiniLandscape,

        /// <summary>
        /// iPad Pro.
        /// </summary>
        IPadPro,

        /// <summary>
        /// iPad Pro landscape.
        /// </summary>
        IPadProLandscape,

        /// <summary>
        /// iPhone 4.
        /// </summary>
        IPhone4,

        /// <summary>
        /// iPhone 4 landscape.
        /// </summary>
        IPhone4Landscape,

        /// <summary>
        /// iPhone 5.
        /// </summary>
        IPhone5,

        /// <summary>
        /// iPhone 5 landscape.
        /// </summary>
        IPhone5Landscape,

        /// <summary>
        /// iPhone 6.
        /// </summary>
        IPhone6,

        /// <summary>
        /// iPhone 6 landscape.
        /// </summary>
        IPhone6Landscape,

        /// <summary>
        /// iPhone 6 Plus.
        /// </summary>
        IPhone6Plus,

        /// <summary>
        /// iPhone 6 Plus landscape.
        /// </summary>
        IPhone6PlusLandscape,

        /// <summary>
        /// iPhone 7.
        /// </summary>
        IPhone7,

        /// <summary>
        /// iPhone 7 landscape.
        /// </summary>
        IPhone7Landscape,

        /// <summary>
        /// iPhone 7 Plus.
        /// </summary>
        IPhone7Plus,

        /// <summary>
        /// iPhone 7 Plus landscape.
        /// </summary>
        IPhone7PlusLandscape,

        /// <summary>
        /// iPhone 8.
        /// </summary>
        IPhone8,

        /// <summary>
        /// iPhone 8 landscape.
        /// </summary>
        IPhone8Landscape,

        /// <summary>
        /// iPhone 8 Plus.
        /// </summary>
        IPhone8Plus,

        /// <summary>
        /// iPhone 8 Plus landscape.
        /// </summary>
        IPhone8PlusLandscape,

        /// <summary>
        /// iPhone SE.
        /// </summary>
        IPhoneSE,

        /// <summary>
        /// iPhone SE landscape.
        /// </summary>
        IPhoneSELandscape,

        /// <summary>
        /// iPhone X.
        /// </summary>
        IPhoneX,

        /// <summary>
        /// iPhone X landscape.
        /// </summary>
        IPhoneXLandscape,

        /// <summary>
        /// iPhone XR.
        /// </summary>
        IPhoneXR,

        /// <summary>
        /// iPhone XR landscape.
        /// </summary>
        IPhoneXRLandscape,

        /// <summary>
        /// iPhone 11.
        /// </summary>
        IPhone11,

        /// <summary>
        /// iPhone 11 landscape.
        /// </summary>
        IPhone11Landscape,

        /// <summary>
        /// iPhone 11 Pro.
        /// </summary>
        IPhone11Pro,

        /// <summary>
        /// iPhone 11 Pro landscape.
        /// </summary>
        IPhone11ProLandscape,

        /// <summary>
        /// iPhone 11 Pro Max.
        /// </summary>
        IPhone11ProMax,

        /// <summary>
        /// iPhone 11 Pro Max landscape.
        /// </summary>
        IPhone11ProMaxLandscape,

        /// <summary>
        /// JioPhone 2.
        /// </summary>
        JioPhone2,

        /// <summary>
        /// JioPhone 2 landscape.
        /// </summary>
        JioPhone2Landscape,

        /// <summary>
        /// Kindle Fire HDX.
        /// </summary>
        KindleFireHDX,

        /// <summary>
        /// Kindle Fire HDX landscape.
        /// </summary>
        KindleFireHDXLandscape,

        /// <summary>
        /// LG Optimus L70.
        /// </summary>
        LGOptimusL70,

        /// <summary>
        /// LG Optimus L70 landscape.
        /// </summary>
        LGOptimusL70Landscape,

        /// <summary>
        /// Microsoft Lumia 550.
        /// </summary>
        MicrosoftLumia550,

        /// <summary>
        /// Microsoft Lumia 950.
        /// </summary>
        MicrosoftLumia950,

        /// <summary>
        /// Microsoft Lumia 950 landscape.
        /// </summary>
        MicrosoftLumia950Landscape,

        /// <summary>
        /// Nexus 10.
        /// </summary>
        Nexus10,

        /// <summary>
        /// Nexus 10 landscape.
        /// </summary>
        Nexus10Landscape,

        /// <summary>
        /// Nexus 4.
        /// </summary>
        Nexus4,

        /// <summary>
        /// Nexus 4 landscape.
        /// </summary>
        Nexus4Landscape,

        /// <summary>
        /// Nexus 5.
        /// </summary>
        Nexus5,

        /// <summary>
        /// Nexus 5 landscape.
        /// </summary>
        Nexus5Landscape,

        /// <summary>
        /// Nexus 5X.
        /// </summary>
        Nexus5X,

        /// <summary>
        /// Nexus 5X landscape.
        /// </summary>
        Nexus5XLandscape,

        /// <summary>
        /// Nexus 6.
        /// </summary>
        Nexus6,

        /// <summary>
        /// Nexus 6 landscape.
        /// </summary>
        Nexus6Landscape,

        /// <summary>
        /// Nexus 6P.
        /// </summary>
        Nexus6P,

        /// <summary>
        /// Nexus 6P landscape.
        /// </summary>
        Nexus6PLandscape,

        /// <summary>
        /// Nexus 7.
        /// </summary>
        Nexus7,

        /// <summary>
        /// Nexus 7 landscape.
        /// </summary>
        Nexus7Landscape,

        /// <summary>
        /// Nokia Lumia 520.
        /// </summary>
        NokiaLumia520,

        /// <summary>
        /// Nokia Lumia 520 landscape.
        /// </summary>
        NokiaLumia520Landscape,

        /// <summary>
        /// Nokia N9.
        /// </summary>
        NokiaN9,

        /// <summary>
        /// Nokia N9 landscape.
        /// </summary>
        NokiaN9Landscape,

        /// <summary>
        /// Pixel 2.
        /// </summary>
        Pixel2,

        /// <summary>
        /// Pixel 2 landscape.
        /// </summary>
        Pixel2Landscape,

        /// <summary>
        /// Pixel 2 XL.
        /// </summary>
        Pixel2XL,

        /// <summary>
        /// Pixel 2 XL landscape.
        /// </summary>
        Pixel2XLLandscape,

        /// <summary>
        /// Pixel 3.
        /// </summary>
        Pixel3,

        /// <summary>
        /// Pixel 3 landscape.
        /// </summary>
        Pixel3Landscape,

        /// <summary>
        /// Pixel 4.
        /// </summary>
        Pixel4,

        /// <summary>
        /// Pixel 4 landscape.
        /// </summary>
        Pixel4Landscape,
    }
}
